Many protocols are used for communication in the process control environment. Data transferred on a bus will usually be in coded form. Data is in a numerical format (i.e. decimal format) or binary format (combination of zeros and ones) or hexadecimal format (0–9 and A to F). A group of data is usually called a packet or a frame. Frames may also consist of multiple packets. A packet defines a method of arranging real world information like source address, destination address, type of packet, data, checksum etc.
In order to verify that the bus is functioning properly and devices on the bus are working as expected, it is necessary to understand each packet of data that is sent on the bus. Generally, analysis of packets is done manually by a developer during development, by an installation engineer during installation of a system, or by a person trouble shooting an installed system to help in identifying which device is not functioning properly. Each packet is observed and interpreted by looking at manuals or other related documents. The analysis is error prone, as the packet structure becomes complex for advanced control protocols.
In one protocol, Modbus, a master device queries a slave device, which gives a response to the query. A typical masterpacket might look like “010200000001B9CA”, while a slave packet might look like “0102020000B9B8”. The data packet from a slave consists of slave address “01”, function codes “02” identifying the type of information, data “00000001” and a cyclical redundancy check (CRC) “B9CA”. For a master packet, the first byte is a slave address “01”, followed by a function code “02”, CRC “B9B8” and remaining data “020000”, where “02” is data length, “0000” is data with some meaning attached. Typical meanings include whether the information is regarding the status of the device or control data of the device. A CRC is used to check whether the packet is received correctly or not. Manually determining all of this information can be a cumbersome, error prone process.
There is a need for analysis tools to aid in interpretation of packets which is easy to use and reduces errors.